/********************************************************************************
 公共方法库
 *******************************************************************************/
var clickTag = '';
var G_Prg = new yingSoftPre();

//如果浏览器不支持trim方法，则自定义trim【兼容ie】
if (!String.prototype.trim) {
	String.prototype.trim = function () {
		return this.replace(/(^\s*)|(\s*$)/g, '');
	};
}
function yingSoftPre() {
}

/********************************************************************************
 函数名：alert(必须引用dialog.css和dialog.js)
 功能：自定义弹出框
 输入参数: msg 提示信息
 callback 点击后执行的函数(可选参数)
 返回值：无
 创建信息：黎萍（2014-05-20）
 修改记录：谢建沅（2014-06-13）封装弹出窗口
 修改记录：谢建沅（2014-06-18）添加回调函数
 审查人：韦友爱（2010-05-26）
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.alert = function (msg, callback) {
    try {
        if (callback) {
            G_DialogBox.checkHtmlContent();
            G_DialogBox.checkTextAreaContent();

            G_DialogBox.show({ buttons: { yes: '确认' }, width: '400px', msg: msg, title: '温馨提示', fn: function (btn) {
                if (btn === 'yes') {
                    callback();
                }
            } });
        } else {
            G_DialogBox.alert(msg);
        }
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}

/********************************************************************************
 函数名：confirm(必须引用dialog.css和dialog.js)
 功能：自定义确认框
 输入参数: msg 提示信息
 callback 确认后的回调函数
 返回值：无
 创建信息：谢建沅（2014-06-13）封装确认框
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.confirm = function (msg, yesCallback, noCallback) {
    try {
        G_DialogBox.confirm(msg, function (btn) {
            if (btn === 'yes') {
                if (yesCallback) {
                    yesCallback();
                }
            } else if (btn === 'no') {
                if (noCallback) {
                    noCallback();
                }
            }
        });
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}

/********************************************************************************
 函数名：textarea(必须引用dialog.css和dialog.js)
 功能：笔记编辑框
 输入参数: msg 显示时绑定的文本
 callback 确认后的回调函数
 返回值：无
 创建信息：谢建沅（2014-06-13）封装确认框
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.textarea = function (msg, yesCallback, noCallback) {
    try {
        G_DialogTextarea.textarea(msg, function (btn, text) {
            if (btn === 'yes') {
                if (yesCallback) {
                    yesCallback(text);
                }
            } else {
                if (noCallback) {
                    noCallback();
                }
            }
        });
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}

/********************************************************************************
 函数名：htmlContent(必须引用dialog.css和dialog.js)
 功能：显示html的弹出框
 输入参数: width 弹出框宽度 '300px'或'90%'
 height 弹出框高度 '300px'或'90%'
 title  标题
 html   显示的html代码
 isInnerHtml true:使用innerHTML方式，false:使用appendChild方式
 closeCallback  关闭回调函数
 返回值：无
 创建信息：谢建沅（2014-06-13）
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.htmlContent = function (width, height, title, html, isInnerHtml, closeCallback) {
    //try {
        //隐藏背景滚动条
//        document.body.style.overflow = 'hidden';
        G_DialogContent.htmlContent(width, height, title, html, isInnerHtml, function () {
            if (closeCallback) {
                closeCallback();
            }
        });
    /*///*} catch (err) {
        alert(err);
        throw new Error(err);
    }*/
}

/********************************************************************************
 函数名：popMsg
 功能：弹出提示文本
 输入参数: msg 显示的文本
 返回值：无
 创建信息：谢建沅（2014-07-28）
 审查人：
 *******************************************************************************/
yingSoftPre.prototype.popMsgTimer = null;//setTimeout定时器
yingSoftPre.prototype.popMsg = function (msg, showTime, isCenter) {
    showTime = showTime || 1000;
    if (this.popMsgTimer) {
        clearTimeout(this.popMsgTimer);
    }
    var oldPopdialog = document.getElementById('popMsgDiv');
    if (oldPopdialog) {
        document.body.removeChild(oldPopdialog);
    }
    var popDiv = document.createElement("div");
    popDiv.id = 'popMsgDiv';
    popDiv.style.position = 'fixed';
    popDiv.style.width = '180px';
    popDiv.style.backgroundColor = '#000';
    if (isCenter) {
        popDiv.style.top = '50%';
        //popDiv.style.marginTop = '0px';
    } else {
        popDiv.style.bottom = '50px';
    }
    //popDiv.style.filter = 'alpha(opacity=80)';
    popDiv.style.opacity = 0.8;
    popDiv.style.color = '#FFF';
    popDiv.style.fontSize = '16px';
    popDiv.style.borderRadius = '5px';
    popDiv.style.left = '50%';
    popDiv.style.zIndex = 9999;
    popDiv.style.marginLeft = '-100px';
    popDiv.style.padding = '5px 10px 5px 10px';
    popDiv.style.textAlign = 'center';

    popDiv.innerHTML = msg;

    document.body.appendChild(popDiv);

    this.popMsgTimer = setTimeout(function () {
        var popdialog = document.getElementById('popMsgDiv');
        if (popdialog) {
            document.body.removeChild(popdialog);
        }
    }, showTime);

}

/********************************************************************************
 函数名：popMsgDialog
 功能：弹出居中提示文本框
 输入参数: msg 显示的文本
 返回值：无
 创建信息：谢建沅（2014-07-28）
 审查人：
 *******************************************************************************/
yingSoftPre.prototype.popMsgDialog = function (msg) {
    try {
        G_DialogPop.popMsg(msg);
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}

/********************************************************************************
 函数名：throw
 功能：抛出异常
 输入参数: msg 异常信息
 返回值：无
 创建信息：黎萍（2014-05-20）
 修改记录：无
 审查人：韦友爱（2010-05-26）
 *******************************************************************************/
yingSoftPre.prototype.throwErr = function (msg, callback) {
    this.alert(msg, function () {
        if (callback) {
            callback();
        } else {
			var curHref = window.location.href;
			if (curHref.indexOf("/html/") > 0) { //非index
				if (curHref.indexOf("/computer") > 0) { //人机对话文件夹底下的页面
					document.location.href = '../../html/start.html?isLogin=true';
				} else { //一般页面
					document.location.href = 'start.html?isLogin=true';
				}
			} else {
				document.location.href = '../html/start.html?isLogin=true';
			}
            /*if (window.location.href.indexOf("/html/") > 0) {
                document.location.href = 'start.html?isLogin=true';
            }
            else {
                document.location.href = 'start.html?isLogin=true';
            }*/
        }
    });
    throw new Error(msg);
}
/********************************************************************************
 函数名：$
 功能：JS封装document.getElementById(id)
 输入参数: 元素ID
 返回值：标签对象
 创建信息：黎萍（2014-05-30）
 修改记录：无
 *******************************************************************************/
yingSoftPre.prototype.$ = function (id) {
    return document.getElementById(id);
}
/********************************************************************************
 函数名：findEl
 功能：JS封装document.getElementById(id)
 输入参数: 元素ID
 返回值：标签对象
 创建信息：杨工（2015-04-21）
 修改记录：无
 *******************************************************************************/
yingSoftPre.prototype.findEl = function (id) {
    return document.getElementById(id);
}
/********************************************************************************
 函数名：getQueryString
 功能：获取参数值
 输入参数: name 参数名
 isURLEncode 是否用了URL字符编码
 返回值：string 参数值
 创建信息：谢建沅(2014-5-30)
 修改记录：无
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.getQueryString = function (name, isURLEncode) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var value = window.location.search.substr(1).match(reg);
    if (!value) {
        return null;
    }
    if (isURLEncode) {
        return decodeURI(value[2]);
    } else {
        return unescape(value[2]);
    }

}
/********************************************************************************
 函数名：checkParamName
 功能：检查参数名称是否存在
 输入参数: paramName 参数名称
 返回值：bool 是或否
 创建信息：谢建沅(2014-06-13)
 修改记录：黎萍（2014-06-13）修改函数名称和变量名称
 审查人：黎萍（2014-06-24）
 *******************************************************************************/
yingSoftPre.prototype.checkParamName = function (paramName) {
    var paramStr = window.location.search.substr(1);
    var paramArr = paramStr.split('&');
    for (var i = 0; i < paramArr.length; i++) {
        if (paramName === paramArr[i].split('=')[0]) {
            return true;
        }
    }
    return false;
}
/********************************************************************************
 函数名：getBrowserVersion
 功能：获取浏览器类型和版本号
 输入参数: 无
 返回值：string 浏览器名称和版本（空格分隔开）
 创建信息：谢建沅(2014-5-30)
 修改记录：无
 审查人：谭健康（2014-06-01）
 *******************************************************************************/
yingSoftPre.prototype.getBrowserVersion = function () {
    var browser = {};
    var userAgent = navigator.userAgent.toLowerCase();
    var verString;
    (verString = userAgent.match(/msie ([\d.]+)/))
        ? browser.ie = verString[1]
        : (verString = userAgent.match(/firefox\/([\d.]+)/))
        ? browser.firefox = verString[1]
        : (verString = userAgent.match(/chrome\/([\d.]+)/))
        ? browser.chrome = verString[1]
        : (verString = userAgent.match(/opera.([\d.]+)/))
        ? browser.opera = verString[1]
        : (verString = userAgent
        .match(/version\/([\d.]+).*safari/))
        ? browser.safari = verString[1]
        : 0;
    var version = '';
    if (browser.ie) {
        version = 'msie ' + browser.ie;
    } else if (browser.firefox) {
        version = 'firefox ' + browser.firefox;
    } else if (browser.chrome) {
        version = 'chrome ' + browser.chrome;
    } else if (browser.opera) {
        version = 'opera ' + browser.opera;
    } else if (browser.safari) {
        version = 'safari ' + browser.safari;
    } else {
        version = '未知的浏览器类型';
    }
    return version;
}
/********************************************************************************
 函数名：checkEmail
 功能：验证Email格式
 输入参数: emailStr 待验证字符串
 返回值：true 验证通过 false验证不通过
 创建信息：谢建沅(2014-5-30)
 修改记录：黎萍（2014-06-24）修改变量名称
 审查人：谭健康reg.test(str)正则检查短字符串没问题（2014-06-01）
 *******************************************************************************/
yingSoftPre.prototype.checkEmail = function (emailStr) {
    if (emailStr.length !== 0) {
        var emailReg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        return emailReg.test(emailStr);
    }
}
/********************************************************************************
 函数名：checkZip
 功能：验证邮编格式
 输入参数: 待验证字符串
 返回值：true 验证通过 false验证不通过
 创建信息：谢建沅(2014-5-30)
 修改记录：黎萍（2014-06-24）修改变量名称
 审查人：谭健康（2014-06-01）
 *******************************************************************************/
yingSoftPre.prototype.checkZip = function (zipStr) {
    if (zipStr.length !== 0) {
        var zipReg = /^\d{6}$/;
        return zipReg.test(zipStr);
    }
}
/********************************************************************************
 函数名：checkUserName
 功能：验证是否为用户名a-z,A-Z,0-9
 输入参数: userName 待验证字符串
 返回值：true 验证通过 false验证不通过
 创建信息：谢建沅(2014-5-30)
 修改记录：黎萍（2014-06-24）修改变量名称
 审查人：谭健康（2014-06-01）
 *******************************************************************************/
yingSoftPre.prototype.checkUserName = function (userName) {
    if (userName.length !== 0) {
        var userNameReg = /^[a-zA-Z0-9_]+$/;
        return userNameReg.test(userName);
    }
}

/********************************************************************************
 函数名：checkCellPhone
 功能：验证是否为手机号码
 输入参数: 待验证字符串
 返回值：true 验证通过 false验证不通过
 创建信息：谢建沅(2014-06-03)
 修改记录：黎萍（2014-06-24）修改变量名称
          杨工（2015-05-04）增加了177手机号码段
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.checkCellPhone = function (phoneStr) {
    if (phoneStr.length !== 0) {
        //var phoneReg=/^((13[0-9])|(14[0-9])|(15[0-35-9])|(18[0,2,3,5-9]))\d{8}$/;
        var phoneReg = /^((13[0-9])|(14[0-9])|(17[0-9])|(15[0-9])|(18[0-9]))\d{8}$/;
        return phoneReg.test(phoneStr);
    }
}

/********************************************************************************
 函数名：getClientHeight
 功能：获取网页当前显示高度
 输入参数:无
 返回值：int 高度值
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getClientHeight = function () {
    return parseInt(window.document.body.clientHeight);
}

/********************************************************************************
 函数名：getClientWidth
 功能：获取网页当前显示宽度
 输入参数:无
 返回值：int 宽度值
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getClientWidth = function () {
    return parseInt(window.document.body.clientWidth);
}

/********************************************************************************
 函数名：checkCookieSupport
 功能：检查Cookie是否可用
 输入参数:无
 返回值：bool true可用，false不可用
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.checkCookieSupport = function () {
    var isSupport = false;
    if (navigator.cookieEnabled) {
        isSupport = true;
    } else {
        document.cookie = 'test';
        isSupport = document.cookie === 'test';
        document.cookie = '';
    }
    return isSupport;
}
/********************************************************************************
 函数名：confirmWidth(必须引用dialog.css和dialog.js)
 功能：自定义确认框(带宽度)
 输入参数: msg 提示信息
 callback 确认后的回调函数
 width    宽度
 返回值：无
 创建信息：周江（2015-05-21）封装确认框
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.confirmWidth = function (msg, yesCallback, noCallback, width) {
    try {
        var eerorBox = document.getElementById('nrdvMsgBox');
        if(eerorBox && eerorBox.style.display === 'block'){//判断是否有报错弹窗（被踢下线）
            return;
        }
        G_DialogBox.confirmWidth(msg, function (btn) {
            if (btn === 'yes') {
                if(yesCallback){
                    yesCallback();
                }
            } else {
                if (noCallback) {
                    noCallback();
                }
            }
        }, width);
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}
/********************************************************************************
 函数名：alertWithTitle(必须引用dialog.css和dialog.js)
 功能：自定义弹出框(带title参数)
 输入参数:title 弹出框的标题(可选参数) msg 提示信息
 callback 点击后执行的函数(可选参数)
 返回值：无
 创建信息：周江（2015-05-15）
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.alertWithTitle = function (title, msg, callback) {
    try {
        var eerorBox = document.getElementById('nrdvMsgBox');
        if(eerorBox && eerorBox.style.display === 'block'){//判断是否有报错弹窗（被踢下线）
            return;
        }
        G_DialogBox.show({ buttons: { yes: '确认' }, width: '300px', msg: msg, title:title?title:'温馨提示', fn: function (btn) {
            if (btn === 'yes') {
                if (callback) {callback()};
            }
        } });
    } catch (err) {
        alert(err);
        throw new Error(err);
    }
}

/********************************************************************************
 函数名：getCookie
 功能：获取Cookie的值
 输入参数: cookieName Cookie名称
 返回值：string Cookie值
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getCookie = function (cookieName) {
    var value = null;
    var arr;
    var reg = new RegExp("(^| )" + cookieName + "=([^;]*)(;|$)");
    arr = document.cookie.match(reg);
    if (arr) {
        value = unescape(arr[2]);
    }
    return (value) ? value : null;
}

/********************************************************************************
 函数名：setCookie
 功能：设置Cookie的值
 输入参数: name Cookie名称
 value Cookie值
 isSetTime 是否设置有效时间(可选参数),false为关闭浏览器自动删除此cookie
 返回值：无
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.setCookie = function (name, value, isSetTime) {
    if (isSetTime === undefined || isSetTime === true) {
        var day = 30;//默认cookie保存30天
        var date = new Date();
        date.setTime(date.getTime() + Number(day) * 24 * 60 * 60 * 1000);
        document.cookie = name + "=" + escape(value) + "; path=/;expires = " + date.toGMTString();
    }
    else {
        document.cookie = name + "=" + escape(value) + "; path=/";
    }
}

/********************************************************************************
 函数名：removeCookie
 功能：删除Cookie
 输入参数: cookieName Cookie名称
 返回值：无
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.removeCookie = function (cookieName) {
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = cookieName + "=;path=/;expires = " + date.toGMTString();
}

/********************************************************************************
 函数名：cleanCookie
 功能：清除所有Cookie
 输入参数: 无
 返回值：无
 创建信息：谢建沅(2014-06-03)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.cleanCookie = function () {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split('; '); // 将多cookie切割为多个名/值对
    for (var i = 0; i < arrCookie.length; i++) { // 遍历cookie数组，处理每个cookie对
        var arr = arrCookie[i].split("=");
        if (arr.length > 0) {
            this.removeCookie(arr[0]);
        }
    }
}

/********************************************************************************
 函数名：datetimeFormat
 功能：格式化时间
 输入参数: datetime 时间
 format 格式化字符串 (yyyy/MM/dd hh:mm:ss)
 返回值：string 格式化后的字符串
 创建信息：谢建沅(2014-06-19)
 修改记录：黎萍（2014-06-25）修改变量名称；修改花括号的格式
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.datetimeFormat = function (datetime, format) {
    var timeSplitT='';
    var timeSplitDate='';
    var timeSplitTime='';

    if(datetime){
        if(typeof (datetime)==='string'){
			datetime=datetime.replace('T', ' ');
			datetime=datetime.replace(/-/g, '/');
			datetime=datetime.replace('.000Z', '');
            datetime=new Date(datetime);
			var time=Date.parse(datetime);
			time=time+8*3600*1000;
			datetime=new Date(time);
        }
    }else{
        return '';
    }
    var date = {
        "M+": datetime.getMonth()+1, //月份
        "d+": datetime.getDate(), //日
        "h+": datetime.getHours(), //小时
        "m+": datetime.getMinutes(), //分
        "s+": datetime.getSeconds(), //秒
        "q+": Math.floor((datetime.getMonth() + 3) / 3), //季度
        "S": datetime.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (datetime.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (date[k]) : (('00' + date[k]).substr(('' + date[k]).length)));
        }
    }
    return format;
}

/********************************************************************************
 函数名：checkVipApp
 功能：验证用户所选的科目是否购买
 输入参数: fn(isBuy) 回调函数 isBuy 是否购买
 返回值：无
 创建信息：谢建沅(2014-09-18)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.checkVipApp = function () {
    var userID = G_Cookie.getUserID();//yang 20140926

    var appEName = G_Cookie.getAppEName();
    var guid = G_Cookie.getGuid();
    var isBuy = false;
    var userID = G_Cookie.getUserID();
    if(!userID){
        return false;
    }
    var URL = '/api/user/getVipMsg/'+userID+'/'+appEName+'/'+guid;
    G_AjaxApi.get(URL, false, function (json) {//json格式为：{ "data": { "userAppJson": userAppJson }, "msg": "找不到产品", "status": 201 } ;
        if (!json) {
            G_Prg.throwErr('程序运行错误:G_Prg._checkVipApp  请求服务器[/api/user/getVipMsg]接口无返回！');
        }
        var jsonData = JSON.parse(json);
        if (jsonData.status === 400 || jsonData.status === 300) {
            G_Prg.throwErr('程序运行错误:G_Prg._checkVipApp  服务器异常：status=' + jsonData.status + '，异常信息:' + jsonData.msg);
        }
        if (jsonData.status === 200) {
            isBuy = true;
        } else if (jsonData.status === 201) {
        } else {
            G_Prg.throwErr('程序运行错误:G_Prg._checkVipApp  未知返回值：' + JSON.stringify(jsonData));
        }
    });

    return isBuy;
}

yingSoftPre.prototype.checkApiPurview = function (purviewName1, purviewName2, purviewName3) {
    var data = G_Storage.getSessionStorageValue('ApiPurview');
    if (!data) {
        return;
    }
    var buyType = 0;
    var arrLen = data.length;
    if (arrLen === 1) {
        if (data[0].BuyType === purviewName1) {
            buyType = 1;
        }
        if (data[0].BuyType === purviewName2) {
            buyType = 2;
        }
        if (data[0].BuyType === purviewName3) {
            buyType = 3;
        }
    } else {
        for (var i = 0; i < arrLen; i++) {
            if (data[i].BuyType === purviewName1 || data[i].BuyType === purviewName2 || data[i].BuyType === purviewName3) {
                buyType = 4;
            }
        }
    }
    return buyType;
}

/********************************************************************************
 函数名：getExamTime
 功能：获取当前用户当前科目的考试时间
 输入参数: userID 用户ID,appID 科目ID
 返回值：examTime 考试时间
 创建信息：韦友爱(2014-09-22)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getExamTime = function (userID,appID) {
    var URL = '/api/examTimeApi/getExamTimeData/' + userID + '/' + appID + '/' + G_Cookie.getGuid()+'/'+G_Cookie.getUserName();
    var examTime = '';
    G_AjaxApi.get(URL, false, function (json) {
        var jsonData = JSON.parse(json);
        if (jsonData.status === 200) {
            examTime = jsonData.data;
        } else if (jsonData.status === 201) {
            examTime = '';
        } else if (jsonData.status === 300) {
            G_Prg.throwErr('程序运行错误:G_Prg.getExamTime,数据库连接错误');
        } else if (jsonData.status === 400) {
            G_Prg.throwErr('程序运行错误:G_Prg.getExamTime,参数错误');
        } else {
            G_Prg.throwErr('程序运行错误:G_Prg.getExamTime  未知返回值：' + JSON.stringify(jsonData));
        }
    });
    return examTime;
}

//yingSoftPre.prototype.loadPage = function(strPage,divName){
//    $.ajax({
//        type: "get",
//        url: strPage,
//        datatype: "text",
//        data: "name=John",
//        async: false,
//        complete: function() {
//            // $("#loadimg").css("display", "none");
//        },
//        success: function(msg) {
//            $(divName).html(msg);
//        },
//        error:function(textStatus){
//            alert( JSON.stringify(textStatus));
//        }
//    })
//}

window.document.onclick = function(){
    if (clickTag == 'more'){
        clickTag = '';
    }
    else {
        if(window.document.getElementById('aa')) {
            if (G_Prg.$('aa').className == 'aa_show') {
                G_Prg.$('aa').className = 'aa_hide';
            }
        }
    }
}

/********************************************************************************
 函数名：getFileName
 功能：获取当前页面的名称
 输入参数: 无
 返回值：string FileName，例如index.html
 创建信息：杨(2014-11-28)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getFileName = function () {
    var url=window.location.href;//获取完整URL
    var tmp= new Array();//临时变量，保存分割字符串
    tmp=url.split("/");//按照"/"分割
    var fileName = '';
    for(var i = 0;i<tmp.length; i ++){
        if(tmp[i].indexOf('.html')>-1){
            fileName = tmp[i];
        }
    }
    //var pp = tmp[tmp.length-1];//获取最后一部分，即文件名和参数
    tmp=fileName.split("?");//把参数和文件名分割开
    return tmp[0];
}

/********************************************************************************
 函数名：getClientType
 功能：获取浏览器类型
 输入参数: 无
 返回值：字符串：浏览器类型
 创建信息：杨工(2015-3-19)
 修改记录：无
 审查人：无
 *******************************************************************************/
yingSoftPre.prototype.getClientType = function () {
    if (navigator.userAgent.indexOf("Windows Phone") != -1) {
        return 'wide_winphone';
    } else if (navigator.userAgent.indexOf("iPhone") != -1) {
        return 'wide_iphone';
    } else if (navigator.userAgent.indexOf("Android") != -1) {
        return 'wide_android';
    } else if (navigator.userAgent.indexOf("NewKsbao") != -1) {
        return 'wide_FengKe';//封壳
    }else {
        return 'wide_pc';
    }
}

/********************************************************************************
 函数名：css
 功能：给元素的class attr赋值
 输入参数: obj 元素,attr class属性,value 值
 返回值：无
 创建信息：杨(2014-11-28)
 修改记录：无
 审查人：无
 *******************************************************************************/
function css(obj, attr, value) {
    switch (arguments.length) {
        case 2:
            if (typeof arguments[1] == "object") {    //批量设置属性
                for (var i in attr) obj.style[i] = attr[i]
            }
            else {    // 读取属性值
                return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr]
            }
            break;
        case 3:
            //设置属性
            obj.style[attr] = value;
            break;
        default:
            return "";
    }
}

/********************************************************************************
 函数名：hasClass
 功能：判断是否有这个类
 输入参数: obj 元素,cls class属性
 返回值：booleen
 创建信息：杨(2014-11-28)
 修改记录：无
 审查人：无
 *******************************************************************************/
function hasClass(obj, cls) {
    return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}

/********************************************************************************
 函数名：addClass
 功能：给元素的增加class attr赋值
 输入参数: obj 元素,attr class属性
 返回值：无
 创建信息：杨(2014-11-28)
 修改记录：无
 审查人：无
 *******************************************************************************/
function addClass(obj, cls) {
    if (!this.hasClass(obj, cls)) obj.className += " " + cls;
}

/********************************************************************************
 函数名：removeClass
 功能：移除元素的class attr赋值
 输入参数: obj 元素,attr class属性
 返回值：无
 创建信息：杨(2014-11-28)
 修改记录：无
 审查人：无
 *******************************************************************************/
function removeClass(obj, cls) {
    if (hasClass(obj, cls)) {
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
        obj.className = obj.className.replace(reg, ' ');
    }
}

/********************************************************************************
 函数名：hideLoading
 功能：隐藏loading
 输入参数: 无
 返回值：无
 创建信息：杨(2015-1-7)
 修改记录：无
 审查人：无
 *******************************************************************************/
function hideLoading() {
    G_Prg.$('loadingDiv').style.display = 'none';
}

/********************************************************************************
 函数名：showLoading
 功能：显示loading
 输入参数: 无
 返回值：无
 创建信息：杨(2015-1-7)
 修改记录：无
 审查人：无
 *******************************************************************************/
function showLoading() {
    G_Prg.$('loadingDiv').style.display = 'block';
}
yingSoftPre.prototype.checkUserName = function (element, isImmediately) {
    var userName = element.value;
    if (!userName) {
        return '*请输入通行证';
    }
    var reg = /[^0-9]/g;
    if (userName.match(reg)) {
        var index = this.getCursortPosition(element) - 1;
        element.value = userName.replace(reg, '');
        this.setCaretPosition(element, index);
        return '';
    }
    if (!isImmediately) {
        if (userName.length < 11) {
            return '*输入通行证为11位数';
        }
        if (!this.checkCellPhone(userName)) {
            return '*通行证必须是手机号码';
        }
    }
    if (userName.length === 2) {
        var phoneReg = /^(1[3,4,5,7,8])$/;
        if (!phoneReg.test(userName)) {
            return '*通行证必须是手机号码';
        }
    }
    if (userName.length > 2) {
        var name = userName[0] + userName[1];
        var phoneReg = /^(1[3,4,5,7,8])$/;
        if (!phoneReg.test(name)) {
            return '*通行证必须是手机号码';
        }
    }
    if (userName.length > 10 && !this.checkCellPhone(userName)) {
        return '*通行证必须是手机号码';
    }
    return '';
}
yingSoftPre.prototype.checkPsw = function (element, isImmediately) {
    var psw = element.value;
    if (!psw) {
        return '*请输入密码';
    }
    var markWord = '*密码必须是6-20个字符';
    var reg = /[^0-9a-zA-Z`~!@#$%^&*()_+<>?:{\},.\/;[\]\\\|\'\"-=]/g;
    if (psw.match(reg)) {
        var index = this.getCursortPosition(element) - 1;
        element.value = psw.replace(reg, '');
        this.setCaretPosition(element, index);
        return '';
    }
    if (!isImmediately) {
        if (psw.length < 6 || psw.length > 20) {
            return markWord;
        }
    }
    if (psw.length > 20) {
        return markWord;
    }
    return '';
}

yingSoftPre.prototype.getCursortPosition = function (element) {
    var CaretPos = 0
    var length = 0;
    if (window.getSelection) {
        length = window.getSelection().toString().length;
    } else if (document.selection && document.selection.createRange) {
        length = document.selection.createRange().text.length;
    }
    if (document.selection) {
        element.focus();
        var Sel = document.selection.createRange();
        Sel.moveStart('character', -element.value.length);
        CaretPos = Sel.text.length;
    } else if (element.selectionStart || element.selectionStart == '0') {
        CaretPos = element.selectionStart;
    }
    return (CaretPos + length);
}

yingSoftPre.prototype.setCaretPosition = function (element, position) {
    if (element.setSelectionRange) {
        element.focus();
        element.setSelectionRange(position, position);
    } else if (element.createTextRange) {
        var range = element.createTextRange();
        range.collapse(true);
        range.moveEnd('character', position);
        range.moveStart('character', position);
        range.select();
    }
}

/********************************************************************************
 函数名：formatRegCode
 功能：格式化20位充值码，用空格分割
 输入参数: RegCode 充值码
 返回值：无
 创建信息：杨工（2015-05-11）
 *******************************************************************************/
yingSoftPre.prototype.formatRegCode = function (RegCode){
    if (RegCode.value == "") return;
    var account = new String (RegCode.value);
    account = account.substring(0,24); /*帐号的总数, 包括空格在内 */
    if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}") == null){
        /* 对照格式 */
        if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}|" +
            ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}") == null){
            var accountNumeric = accountChar = "", i;
            for (i=0;i<account.length;i++){
                accountChar = account.substr (i,1);
                if (!isNaN (accountChar) && (accountChar != " ")) accountNumeric = accountNumeric + accountChar;
            }
            account = "";
            for (i=0;i<accountNumeric.length;i++){    /* 可将以下空格改为-,效果也不错 */
                if (i == 4) account = account + " "; /* 帐号第四位数后加空格 */
                if (i == 8) account = account + " "; /* 帐号第八位数后加空格 */
                if (i == 12) account = account + " ";/* 帐号第十二位后数后加空格 */
                if (i == 16) account = account + " ";/* 帐号第十六位后数后加空格 */
                account = account + accountNumeric.substr (i,1)
            }
        }
    }
    else
    {
        account = " " + account.substring (1,5) + " " + account.substring (6,10) + " " + account.substring (14,18) + "-" + account.substring(18,25);
    }
    if (account != RegCode.value)
        RegCode.value = account;
}

/********************************************************************************
 函数名：formatStr
 功能：格式化字符串,例子：element.innerHTML = String.format(’<a href=”%1″ onclick=”alert(\’%2\’);”>%3</a>’, url, msg, text);
 输入参数: str
 返回值：无
 创建信息：杨工（2015-05-13）
 *******************************************************************************/
yingSoftPre.prototype.formatStr = function (str){
    var args = arguments, re = new RegExp("%([1-" + args.length + "])", "g");
    return String(str).replace(
        re,
        function($1, $2) {
            return args[$2];
        }
    );
}

/********************************************************************************
 函数名：isIE89
 功能：判断浏览器是否IE8或者IE9
 输入参数: str
 返回值：无
 创建信息：杨工（2015-05-13）
 *******************************************************************************/
yingSoftPre.prototype.isIE89 = function (){
    var isIE89 = false;
    var BrowserVersion = G_Prg.getBrowserVersion();
    if ((BrowserVersion.indexOf('msie 8.0') > -1) || (BrowserVersion.indexOf('msie 9.0') > -1)) {
        isIE89 = true;
    }
    return isIE89;
}

